Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds gfxreconstruct as a subtree #140

Closed
wants to merge 2,873 commits into from
Closed

Conversation

GrantComm
Copy link
Collaborator

In order to use gfxreconstruct capture/replay, the gfxreconstruct repo needs to be added to dive. Unlike other existing third party libraries in dive, the cmake files for gfxreconstruct are not setup so that it can be easily added to the project. To remedy this, I add gfxreconstruct as a git subtree so that dive specific modifications can be made to gfxreconstruct and the upstream changes can be pulled in to keep our version updated.

Changes:

  • Adding gfxreconstruct submodules to .gitmodules
  • Updating paths for gfxreconstruct CMake files to use CMAKE_CURRENT_SOURCE_DIR
  • Modifying the build_android.sh script
  • Adding gfxrecontstruct to the dive build when the INCLUDE_GFXR build flag is enabled

Dispatch and TraceRays outputs now support descriptor arrays
davidlunarg and others added 22 commits October 31, 2024 09:30
When the replay --use-cached-psos option is not specified, clear the
cached PSO data from the ID3D12Device2::CreatePipelineState parameters,
similar to what is currently done for the ID3D12Device
CreateComputePipelineState and CreateGraphicsPipelineState methods.
For layered API support.
For layered API support.
Prevents uninitialized next/pNext.  The lower level decoders aren't
always setting values. Set a good state at initialization (zeros)

Layered API support.
Prevent collisions with other API consumers and decoders

Layered API support.
Split vulkan instance and device creation override into reusable
pieces suitable for layered API support (specifically OpenXR)

Make neeed information public for other replay consumers

Layered API support.
Vulkan captures unwrapped physical device handles, Layered API (like OpenXR)
captures wrapped handles.  During replay two HandleId's will reference the
same VkPhysical device.  The vulkan_alias is the handleId as known by the
vulkan_consumer, which will be created/updated, etc, by all Vulkan replay
calls.
Move replay options around that are shared between multiple
replay paths.

For layered API support.
Install page guard signal handler using AddSpecialSignalHandlerFn from
the libsigchain in the Android runtime. This prevents traced
applications from replacing our signal handler when they try to install
thier own signal handlers with sigaction.

This is implicitly enabled when using page_guard on Android and falls
back to sigaction if libsigchain isn't found or the add call fails.

If the signal handler watcher is enabled, the watcher thread will exit
as soon as our handler is successfully added with libsigchain.
* Fix descriptor info assert during capture

* Combine asserts
- various changes to state-writer: always provide shader-group-handles
- track bound pipelines in replay, retrieve map of old/new handles in CmdTraceRays
- Add a generic murmur32-implementation to util/hash.h
- Add a 'linear hashmap' type (cpu-flavor), populate with handles
- Add unit-test for linear_hashmap
The DestroyState() overrides added by 1644 should also do what the
default DestroyState is doing. This patch should address this omission
Fix invalid conversion errors by casting argument values to their target
platform full types. This fixes compilation issues for code like this:
```
VkWaylandSurfaceCreateInfoKHR waylandSurfaceCreateInfoKHR_17 {
  VkStructureType(1000006000),
  NULL,
  VkWaylandSurfaceCreateFlagsKHR(0),
  0,
  0x2000000,
};
```
which compiled with g++ 14.2.1 20240912 yields this:
```
src/frame_0000_0000.cpp:132:25:
  error: invalid conversion from ‘int’ to ‘wl_surface*’ [-fpermissive]
```
Use ID3D12GraphicsCommandList4ComPtr to release automatically.
…0b2adbadddbfd6f96f'

git-subtree-dir: third_party/gfxreconstruct
git-subtree-mainline: 89b9044
git-subtree-split: 69a7108
@GrantComm GrantComm marked this pull request as draft November 8, 2024 21:18
@GrantComm GrantComm closed this Dec 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.